package br.com.massai.model.entity.file;

import java.io.Serializable;
import java.math.BigDecimal;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@Entity
@Table(name = "EMPREGADO_FILE")
public class EmpregadoFile implements Serializable {

	private static final long serialVersionUID = -8729672103813271024L;

	@Id
	@SequenceGenerator(name = "seqEmpregadoFile", sequenceName = "seq_empregado_file", allocationSize = 1)
	@GeneratedValue(generator = "seqEmpregadoFile", strategy = GenerationType.SEQUENCE)
	private Long id;

	@Column(name = "EMP_CODIGO", length = 6, columnDefinition = "VARCHAR(6)")
	private String empCodigo;

	@Column(name = "EPG_CODIGO", length = 6, columnDefinition = "VARCHAR(6)")
	private String epgCodigo;

	@Column(name = "EPG_NOME")
	private String epgNome;

	@Column(name = "DEPART_CODIGO", length = 10, columnDefinition = "VARCHAR(10)")
	private String departCodigo;
	
	@Column(name = "DEPART_NOME")
	private String departNome;

	@Column(name = "CARGO_CODIGO", length = 3, columnDefinition = "VARCHAR(3)")
	private String cargoCodigo;

	@Column(name = "CARGO_NOME")
	private String cargoNome;
	
	@Column(name = "TOTAL_PROVENTOS", precision = 10, scale = 2, columnDefinition = "NUMERIC(10,2) DEFAULT 0.00")
	private BigDecimal totalProventos;
	
	@Column(name = "TOTAL_DESCONTOS", precision = 10, scale = 2, columnDefinition = "NUMERIC(10,2) DEFAULT 0.00")
	private BigDecimal totalDescontos;

	@Column(name = "SALARIO_LIQUIDO", precision = 10, scale = 2, columnDefinition = "NUMERIC(10,2) DEFAULT 0.00")
	private BigDecimal salarioLiquido;
	
	@Column(name = "TOTAL_HORAS", precision = 10, scale = 2, columnDefinition = "NUMERIC(10,2) DEFAULT 0.00")
	private BigDecimal totalHoras;
	
	@ManyToOne(optional = false, fetch = FetchType.EAGER, cascade = CascadeType.ALL)
	@JoinColumn(name = "HEADER_ID", referencedColumnName = "ID")
	private HeaderFile header;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getEmpCodigo() {
		return empCodigo;
	}

	public void setEmpCodigo(String empCodigo) {
		this.empCodigo = empCodigo;
	}

	public String getEpgCodigo() {
		return epgCodigo;
	}

	public void setEpgCodigo(String epgCodigo) {
		this.epgCodigo = epgCodigo;
	}

	public String getEpgNome() {
		return epgNome;
	}

	public void setEpgNome(String epgNome) {
		this.epgNome = epgNome;
	}

	public String getDepartCodigo() {
		return departCodigo;
	}

	public void setDepartCodigo(String departCodigo) {
		this.departCodigo = departCodigo;
	}

	public String getDepartNome() {
		return departNome;
	}

	public void setDepartNome(String departNome) {
		this.departNome = departNome;
	}

	public String getCargoCodigo() {
		return cargoCodigo;
	}

	public void setCargoCodigo(String cargoCodigo) {
		this.cargoCodigo = cargoCodigo;
	}

	public String getCargoNome() {
		return cargoNome;
	}

	public void setCargoNome(String cargoNome) {
		this.cargoNome = cargoNome;
	}

	public BigDecimal getTotalProventos() {
		return totalProventos;
	}

	public void setTotalProventos(BigDecimal totalProventos) {
		this.totalProventos = totalProventos;
	}

	public BigDecimal getTotalDescontos() {
		return totalDescontos;
	}

	public void setTotalDescontos(BigDecimal totalDescontos) {
		this.totalDescontos = totalDescontos;
	}

	public BigDecimal getSalarioLiquido() {
		return salarioLiquido;
	}

	public void setSalarioLiquido(BigDecimal salarioLiquido) {
		this.salarioLiquido = salarioLiquido;
	}

	public BigDecimal getTotalHoras() {
		return totalHoras;
	}

	public void setTotalHoras(BigDecimal totalHoras) {
		this.totalHoras = totalHoras;
	}

	public HeaderFile getHeader() {
		return header;
	}

	public void setHeader(HeaderFile header) {
		this.header = header;
	}
}